Restructure ROADMAP.md to reflect minimal-first implementation strategy#722
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Updates the project roadmap documentation to emphasize a minimal-first service delivery strategy and to clarify that metadata database persistence (DatabaseLoader) is the key production blocker.
Changes:
- Added a “Minimal Implementation Strategy” section to the root
ROADMAP.md. - Restructured Phase 4 into time-boxed subphases (4a–4d) centered on the DatabaseLoader critical path.
- Updated “Last Updated” dates in both roadmap documents for consistency.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 3 comments.
| File | Description |
|---|---|
ROADMAP.md |
Adds minimal-first strategy section and reorganizes Phase 4 into subphases with a clearer critical path. |
packages/metadata/ROADMAP.md |
Adds a “Last Updated: 2026-02-18” header line. |
|
|
||
| **Tests:** | ||
| - [ ] Unit tests with mock `IDataDriver` | ||
| - [ ] Integration tests with `MemoryDriver` |
There was a problem hiding this comment.
Phase 4a tests mention “Integration tests with MemoryDriver”, but the in-repo driver class exported by @objectstack/driver-memory is InMemoryDriver. Consider renaming this roadmap item to InMemoryDriver (or clarifying what “MemoryDriver” refers to) to avoid confusion when implementing the tests.
| - [ ] Integration tests with `MemoryDriver` | |
| - [ ] Integration tests with `InMemoryDriver` |
| | `II18nService` | **P1** | `@objectstack/service-i18n` | Map-backed translation with locale resolution | | ||
| | `IRealtimeService` | **P1** | `@objectstack/service-realtime` | WebSocket/SSE push (replaces Studio setTimeout hack) | | ||
| | `ISearchService` | **P1** | `@objectstack/service-search` | In-memory search first, then Meilisearch driver | | ||
| | `INotificationService` | **P2** | `@objectstack/service-notification` | Email adapter (console logger in dev mode) | |
There was a problem hiding this comment.
Phase 4c is labeled “P1 — Weeks 5-6”, but the table includes INotificationService as P2. This makes the timeline ambiguous—either move notification into Phase 4d (P2) or update Phase 4c’s scope/priority so the phase only contains P1 work.
| | `INotificationService` | **P2** | `@objectstack/service-notification` | Email adapter (console logger in dev mode) | | |
| | `INotificationService` | **P1** | `@objectstack/service-notification` | Email adapter (console logger in dev mode) | |
| ### Phase 4b: Infrastructure Service Upgrades (P1 — Weeks 3-4) | ||
|
|
||
| **Upgrade existing services from in-memory fallbacks to production adapters.** | ||
|
|
||
| | Contract | Current Status | Upgrade Path | | ||
| |:---|:---|:---| | ||
| | `ICacheService` | ✅ Memory adapter + Redis skeleton | Add Redis adapter implementation | | ||
| | `IQueueService` | ✅ Memory adapter + BullMQ skeleton | Add BullMQ adapter implementation | | ||
| | `IJobService` | ✅ Interval scheduler + cron skeleton | Add cron adapter implementation | | ||
| | `IStorageService` | ✅ Local FS + S3 skeleton | Add S3 adapter implementation | |
There was a problem hiding this comment.
Phase 4’s stated goal is to implement the remaining service contracts, but Phase 4b only enumerates cache/queue/job/storage upgrades. Since ISchemaDriver is still listed as spec-only in the Contract Implementation Matrix, consider explicitly placing it into a Phase 4 subphase (or calling out that it’s deferred to Phase 6) so the critical path for objectstack migrate/DDL work isn’t lost in the plan.
Clarifies that DatabaseLoader is the single P0 blocker preventing production deployment. Restructures Phase 4 service implementation timeline to emphasize critical path vs. incremental upgrades.
Changes
Main ROADMAP.md
Added "Minimal Implementation Strategy" section
Restructured Phase 4 into time-boxed subphases
packages/metadata/src/loaders/database-loader.tsMetadataLoaderinterface withdatasource:protocolsys_metadatatable CRUD operations viaIDataDriverUpdated metadata ROADMAP.md
Context
Auth service (✅ via better-auth) and UI service (⚠️ deprecated, merged into IMetadataService) statuses were already correctly reflected in Contract Implementation Matrix—no changes needed.
Original prompt
This pull request was created from Copilot chat.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.